package travelDream.entities;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

@Entity
@NamedQueries({
	@NamedQuery(name = "Partecipanti.findByIdUtente", query = "SELECT p FROM Partecipanti p WHERE p.partecipantiPK.idUtente = :idUtente"),
	@NamedQuery(name = "Partecipanti.SelectSpecific", query = "SELECT p FROM Partecipanti p WHERE p.partecipantiPK.idUtente = :idUtente AND p.partecipantiPK.idPacchettoScelto = :idPacchettoScelto"),
	@NamedQuery(name = "Partecipanti.findByIdPacchetto", query = "SELECT p FROM Partecipanti p WHERE p.partecipantiPK.idPacchettoScelto = :idPacchetto")
})
public class Partecipanti implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@EmbeddedId
	private PartecipantiPK partecipantiPK;
	
	
	public PartecipantiPK getPartecipantiPK() {
		return partecipantiPK;
	}


	public void setPartecipantiPK(PartecipantiPK partecipantiPK) {
		this.partecipantiPK = partecipantiPK;
	}


	@Embeddable
	public static class PartecipantiPK implements Serializable {
		
			private static final long serialVersionUID = 1L;
			
			private int idPacchettoScelto;
			private int idUtente;
			
			
			public int getIdPacchettoScelto() {
				return idPacchettoScelto;
			}

			public void setIdPacchettoScelto(int idPacchettoScelto) {
				this.idPacchettoScelto = idPacchettoScelto;
			}

			public int getIdUtente() {
				return idUtente;
			}

			public void setIdUtente(int idUtente) {
				this.idUtente = idUtente;
			}

			public boolean equals(Object other) {
	            if (this == other) {
	                    return true;
	            }
	            if (!(other instanceof PartecipantiPK)) {
	                    return false;
	            }
	            PartecipantiPK castOther = (PartecipantiPK)other;
	            return 
	                    (this.idPacchettoScelto == castOther.idPacchettoScelto)
	                    && (this.idUtente == castOther.idUtente);
			}

			public int hashCode() {
	            final int prime = 31;
	            int hash = 17;
	            hash = hash * prime + ((int) this.idPacchettoScelto);
	            hash = hash * prime + this.idUtente;
	            
	            return hash;
			}
	}
	
	
}
